/**
 * All right reserved@Raygo 2022~2030
 */
package com.raygo.jfxdemo.view;

import java.util.UUID;

import org.kordamp.ikonli.fontawesome.FontAwesome;
import org.kordamp.ikonli.javafx.FontIcon;

import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

/**
 * 列表视图示例
 *
 * @author Raygo
 * @since 2022年3月2日
 */
public class TreeViewUI {
    /**
     * 打开窗口
     *
     * @throws Exception 异常
     */
    public void show() {
        Stage stage = new Stage();

        TreeView<String> treeView = new TreeView<>();
        TreeItem<String> rootItem = new TreeItem<>("根节点");
        // 设置根节点
        treeView.setRoot(rootItem);
        // 不可编辑
        treeView.setEditable(false);
        // 展开
        rootItem.setExpanded(true);
        
        // 添加叶子节点
        for (int i = 0; i < 20; i++) {
            TreeItem<String> item = new TreeItem<>(UUID.randomUUID().toString());
            // 设置图标
            item.setGraphic(FontIcon.of(FontAwesome.ID_CARD_O, 16));
            rootItem.getChildren().add(item);
        }
        
        // 界面
        VBox vbox = new VBox();
        vbox.getChildren().addAll(treeView);
        Scene scene = new Scene(vbox);
        stage.setScene(scene);
        stage.setWidth(640.0d);
        stage.setHeight(480.0d);
        stage.setTitle("TreeView");
        stage.show();
        
        // 滚动
        treeView.scrollTo(19);
    }
}
